/***************************************************************************************************
 *Copyright(C),2010-2016,Sumscope
 *FileName	:  base64.h
 *Author	:  scofined.qi
 *Version	:  1.0
 *Date		:  2016/01/28
 *Desc		:  //用于主要说明此程序文件完成的主要功能
 *Relation :
 *Others	:  //其他内容说明
 *Function :  //主要函数列表，每条记录应包含函数名及功能简要说明
 *History	:
 * //修改历史记录列表，每条修改记录应包含修改日期、修改者及修改内容简介
 ***************************************************************************************************/
#pragma once
#include <string.h>

#include <string>

#include "BaseString.h"

namespace qb {
namespace base {
class S_CORE_EXPORT Base64 {
 public:
  static int Encode(const char* aIn, size_t aInLen, char* aOut, size_t aOutSize,
                    size_t* aOutLen);
  static int Encode(const BaseString& strSrc, BaseString& strDest);

  static int Decode(const char* aIn, size_t aInLen, char* aOut, size_t aOutSize,
                    size_t* aOutLen);
  static int Decode(const BaseString& strSrc, BaseString& strDest);

  static unsigned int CRC32(const char* s, int len);
  static unsigned short CRC16(const unsigned char* info, unsigned long len);
};
}  // namespace base
}  // namespace qb
